# -*- coding: utf-8 -*-
# @Time : 2025/10/13 20:03
# @Author : yilimiao
# @File : test.py
# pip install -i https://mirrors.aliyun.com/pypi/simple/ 包名
from jsonpath import jsonpath

data = {
	"returncode": 0,
	"message": "成功",
	"result": {
		"specid": 66917,
		"paramtypeitems": [{
			"name": "基本参数",
			"paramitems": [{
				"id": 113,
				"name": "车型名称",
				"displaytype": 0,
				"value": "零跑C11 2024款 纯电 580激光雷达版",
				"sublist": []
			},
			{
				"id": 112,
				"name": "厂商指导价(元)",
				"displaytype": 0,
				"value": "17.88万",
				"sublist": []
			},
			{
				"id": 111,
				"name": "厂商",
				"displaytype": 0,
				"value": "零跑汽车",
				"sublist": []
			},
			{
				"id": 110,
				"name": "厂商指导价",
				"displaytype": 0,
				"value": "16.88万",
				"sublist": []
			},
		],
		"subparamitems": []
		}
		]
	}
}

# 问题1和问题2的解决方案

# 检查jsonpath库的基本功能
all_names = jsonpath(data, "$..name")
print("所有name值:", all_names)

# 问题1: 小括号特殊字符问题
# 解决方案：使用路径分段和索引直接访问
result_by_index = jsonpath(data, "$..paramitems[1].value")
print("\n问题1解决方案 (路径分段+索引访问):")
print("- 表达式: $..paramitems[1].value")
print("- 结果:", result_by_index)
print("- 说明: 不使用过滤器语法，直接通过索引访问目标元素，避开了小括号特殊字符问题")

# 问题2: 正则表达式支持问题
# 解决方案：使用数据中实际存在的字段名称进行精确匹配
result_exact_match = jsonpath(data, "$..[?(@.name=='厂商指导价')].value")
print("\n问题2解决方案 (精确匹配):")
print("- 表达式: $..[?(@.name=='厂商指导价')].value")
print("- 结果:", result_exact_match)
print("- 说明: 直接匹配数据中实际存在的不带小括号的字段名，避开了正则表达式支持问题")

print("\n结论:")
print("1. 当前使用的python-jsonpath库对特殊字符处理和高级功能支持有限")
print("2. 对于带特殊字符的字段，建议使用索引直接访问")
print("3. 对于需要部分匹配的情况，建议先检查数据中是否存在可直接匹配的字段名")

# 设置最终使用的结果
result_without_brackets = result_exact_match  # 保持与原有变量名称一致

# 打印结果4（保持原有变量）
result4 = result_without_brackets  # 使用能匹配到的结果
print("result4", result4)